/*
  修建道路
  题目描述
    一张带边权的无向图中有 n 个点，从 1 到 n 标号，一开始告诉你任意两点之间的最短距离是多少，
    di.j 表示从 i 到 j 的最短距离。显然 di.j = dj.i，保证一开始任意两个点之间都能互相到达。

    现在计划新修 m 条道路，请你求出每修一条路之后，所有点对之间的最短距离的和是多少。
  输入描述
    第一行两个整数 n, m，表示点数和新修道路条数。
    接下来 n 行的第 i 行有 n 个整数 di.1, di.2, ... , di.n。
    最后 m 行的第 i 行有三个整数 Ai, Bi, Ci 表示一条长度为 Ci 的道路连接 Ai, Bi 两点。
  输出描述
    输出共 m 行，其中第 i 行表示修完第 i 条路之后，所有点对之间的最短距离的和。
  样例1
    输入
      2 1
      0 5
      5 0
      1 2 3
    输出
      3
  样例2
    输入
      3 2
      0 4 5
      4 0 9
      5 9 0
      2 3 8
      1 2 1
    输出
      17 12
  提示
    样例 1：
      新建一条道路后的距离矩阵为：
        0 3
        3 0
      故输出 3。
    样例 2：
      新建第一条道路后的距离矩阵为：
          0 4 5
          4 0 8
          5 8 0
        故输出 4+5+8 = 17。
      新建第二条道路后的距离矩阵为
          0 1 5
          1 0 6
          5 6 0
        故输出 1+5+6 = 12。
    [数据取值范围]
      对于 100% 的数据:
        1 ≤ n, m ≤ 300，
        1 ≤ di.j ≤ 1000，
        1 ≤ Ai, Bi ≤ n，
        Ai ≠ Bi，
        1 ≤ Ci ≤ 1000。
*/